home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk122 / bassub / intuition.sub < prev    next >
Text File  |  1995-03-19  |  3KB  |  125 lines

  1. 'Subroutines for creating standard Amiga gadgets, windows, etc.
  2. SUB DefChip(Buffer&,Size&)STATIC
  3.  SHARED MList&
  4.   Size&=Size&+8
  5.   Buffer&=AllocMem&(Size&,&H10001)
  6.   IF Buffer&>0 THEN
  7.     POKEL Buffer&,MList&
  8.     POKEL Buffer&+4,Size&
  9.     MList&=Buffer&
  10.     Buffer&=Buffer&+8
  11.   ELSE
  12.     ERROR 7
  13.   END IF
  14. END SUB
  15. SUB UnDef STATIC
  16.  SHARED MList&
  17.   WHILE MList&>0
  18.     Address& = PEEKL(MList&)
  19.     ListSize& = PEEKL(MList&+4)
  20.     FreeMem MList&, ListSize&
  21.     MList&   = Address&
  22.   WEND
  23. END SUB       
  24. SUB WinDef(bs&, x%, y%, b%, h%, IDCMP&, f&, gad&, T$,scrid&,scrflag%) STATIC
  25.   Size& = 48+LEN(T$)+1
  26.   DefChip bs&,Size&
  27.   POKEW bs&   ,x%      ' Left Corner
  28.   POKEW bs&+ 2,y%      ' Top Corner
  29.   POKEW bs&+ 4,b%      ' Width
  30.   POKEW bs&+ 6,h%      ' Height
  31.   POKEW bs&+ 8,&HFFFF  ' Detail- BlockPen
  32.   POKEL bs&+10,IDCMP&   ' IDCMP Flags
  33.   POKEL bs&+14,f&       ' Flags
  34.   POKEL bs&+18,gad&     ' First Gadget
  35.   POKEL bs&+26,bs&+48   ' Title
  36.   IF scrflag%=15 THEN
  37.       POKEL bs&+30,scrid&   'Screen addr
  38.   END IF
  39.   POKEW bs&+46,scrflag%    ' Screen Type
  40.   FOR i%=1 TO LEN(T$)
  41.      POKE bs&+47+i%,ASC(MID$(T$,i%,1))
  42.   NEXT
  43. END SUB
  44. SUB GadgetDef(bs&, nx&, x%, y%, b%, h%, f%, a%, T%, i&, txt&, si&, n%) STATIC
  45.   DefChip bs&,44&      ' Gadget-Structure length
  46.   POKEL bs&   ,nx&      '*NextGadget
  47.   POKEW bs&+ 4,x%      ' LeftEdge
  48.   POKEW bs&+ 6,y%      ' TopEdge
  49.   POKEW bs&+ 8,b%      ' Width
  50.   POKEW bs&+10,h%      ' Height
  51.   POKEW bs&+12,f%      ' Flags
  52.   POKEW bs&+14,a%      ' Activation
  53.   POKEW bs&+16,T%      ' GadgetType
  54.   POKEL bs&+18,i&       ' GadgetRender
  55.   POKEL bs&+26,txt&     '*GadgetText
  56.   POKEL bs&+34,si&      ' SpecialInfo
  57.   POKEW bs&+38,n%      ' GadgetID
  58. END SUB
  59.  
  60. SUB IntuiText(bs&, c1%, x%, y%, T$, nx&) STATIC
  61.   Size&=20+LEN(T$)+1   ' Structure lewngth+ Text length+ Nullbyte
  62.   DefChip bs&,Size&
  63.   POKE  bs&   ,c1%     ' FrontPen
  64.   POKE  bs&+ 2,1       ' DrawMode
  65.   POKEW bs&+ 4,x%      ' Left corner
  66.   POKEW bs&+ 6,y%      ' Top corner
  67.   POKEL bs&+12,bs&+20   ' IText
  68.   POKEL bs&+16,nx&      ' NextText
  69.   FOR i%=1 TO LEN(T$)
  70.      POKE bs&+19+i%,ASC(MID$(T$,i%,1))
  71.   NEXT
  72. END SUB
  73.  
  74. SUB Border(bs&, x%, y%, c%, b%, h%) STATIC
  75.   DefChip bs&,48&      ' Structure length+ Coordinate table
  76.   POKEW bs&  ,x%       ' Left corner
  77.   POKEW bs&+2,y%       ' Top corner
  78.   POKE  bs&+4,c%       ' FrontPen
  79.   POKE  bs&+7,8        ' Count
  80.   POKEL bs&+8,bs&+16    '*XY
  81.   FOR i%=0 TO 1
  82.      POKEW bs&+22+i%*4,h%-1
  83.      POKEW bs&+24+i%*4,b%-1
  84.      POKEW bs&+32+i%*4,1
  85.      POKEW bs&+38+i%*4,h%-1
  86.      POKEW bs&+40+i%*4,b%-2
  87.   NEXT
  88. END SUB
  89. SUB getstring$(s$,strgadinfo&) STATIC
  90.   STATIC i%
  91.   REM Returns string in buffer of a string gadget
  92.   REM strgadinfo& = variable containing address of string gadget info
  93.   REM
  94.   s$=""
  95.   FOR i%=0 TO PEEKW(strgadinfo&+16)-1
  96.     s$=s$+CHR$(PEEK(PEEKL(strgadinfo&)+i%))
  97.   NEXT i%
  98. END SUB
  99. SUB nullstr(bs&,s$)
  100.   STATIC i%
  101.   DefChip bs&,20&
  102.   FOR i%=1 TO LEN(s$)
  103.     POKE bs&+i%-1,ASC(MID$(s$,i%,1))
  104.   NEXT i%
  105. END SUB
  106. SUB strinfostruct(bs&,buffer&,undobuffer&,bufferpos%,maxchars%,disppos%,longint&,altkeymap&) STATIC
  107.   DefChip bs&,36
  108.   POKEL bs&,buffer&
  109.   POKEL bs&+4,undobuffer&
  110.   POKEW bs&+8,bufferpos%
  111.   POKEW bs&+10,maxchars%
  112.   POKEW bs&+12,disppos%
  113.   POKEL bs&+28,longint&
  114.   POKEL bs&+32,altkeymap&
  115. END SUB
  116. SUB propinfo(bs&,flags%,hpot%,vpot%,hbody%,vbody%) STATIC
  117.   DefChip bs&,22
  118.   POKEW bs&,flags%
  119.   POKEW bs&+2,hpot%
  120.   POKEW bs&+4,vpot%
  121.   POKEW bs&+6,hbody%
  122.   POKEW bs&+8,vbody%
  123. END SUB
  124.  
  125.